package com.gagakuai.engine.impl.delegate;

/*
 * @program: common-starters
 * @description: 委托代理
 * @author: houhong
 * @create: 2023-01-02 00:04
 */
public abstract class DelegateInvocation {

    protected Object delegateResult;

    protected Object[] invocationParameters;

    public void proceed() throws Exception {
        invoke();
    }

    public abstract void invoke() throws Exception;

    public abstract Object getTarget();


    public Object getDelegateResult() {
        return delegateResult;
    }

    public void setDelegateResult(Object delegateResult) {
        this.delegateResult = delegateResult;
    }

    public Object[] getInvocationParameters() {
        return invocationParameters;
    }

    public void setInvocationParameters(Object[] invocationParameters) {
        this.invocationParameters = invocationParameters;
    }
}